/* ----------------------------------------------------------------------------------------------------------------
 * IStatus
 * ----------------------------------------------------------------------------------------------------------------
 */

/*
	状态 : (被观察者)
		
		1. 保存与处理状态信息.
		
		2. 出生即绑定实体.
		
		3. 每个状态单独对应一个实体.

 */ 
package pure.engine.status 
{
	import flash.geom.Point;
	import pure.engine.entity.IEntity;
	
	/**
	 * 状态接口
	 * 
	 * @author Pure
	 * 
	 */
public interface IStatus 
{
	

	/**
	 * 实体
	 */
	function get entity():IEntity
	function set entity(E:IEntity):void
	
		
	/**
	 * 是否计时处理
	 */
	function setTicked(flag:Boolean, priority:Number = 0.0):void
	

	
	/**
	 * 定位
	 */
	function locate(movement:Number, finalRotation:Number):Point
	
	
	
	/**
	 * 吸收
	 */
	function absorb():void
	
	
	/**
	 * 退出
	 */
	function exit():void
		

	/**
	 * 注册反应
	 */
	function registerReaction(reactionId:String, onReaction:Function):void
	
	
	/**
	 * 执行反应
	 */
	function doReaction(reactionId:String):void

		
		
}
	
}